﻿2026-09-11T10:08:23.9777229Z ##[group]Run python3 - <<'PY'
2026-09-11T10:08:23.9777664Z [36;1mpython3 - <<'PY'[0m
2026-09-11T10:08:23.9777932Z [36;1mimport sys, pathlib, yaml[0m
2026-09-11T10:08:23.9778199Z [36;1merrs = 0[0m
2026-09-11T10:08:23.9778423Z [36;1mchecked = 0[0m
2026-09-11T10:08:23.9778731Z [36;1mfor p in sorted(pathlib.Path('.').rglob('SKILL.md')):[0m
2026-09-11T10:08:23.9779074Z [36;1m    checked += 1[0m
2026-09-11T10:08:23.9779352Z [36;1m    text = p.read_text(encoding='utf-8')[0m
2026-09-11T10:08:23.9779668Z [36;1m    if not text.startswith('---'):[0m
2026-09-11T10:08:23.9780036Z [36;1m        print(f"{p}: missing leading '---' frontmatter delimiter")[0m
2026-09-11T10:08:23.9780392Z [36;1m        errs += 1[0m
2026-09-11T10:08:23.9780627Z [36;1m        continue[0m
2026-09-11T10:08:23.9780879Z [36;1m    parts = text.split('---', 2)[0m
2026-09-11T10:08:23.9781621Z [36;1m    if len(parts) < 3:[0m
2026-09-11T10:08:23.9781955Z [36;1m        print(f"{p}: malformed frontmatter (no closing '---')")[0m
2026-09-11T10:08:23.9782394Z [36;1m        errs += 1[0m
2026-09-11T10:08:23.9782640Z [36;1m        continue[0m
2026-09-11T10:08:23.9782869Z [36;1m    try:[0m
2026-09-11T10:08:23.9783092Z [36;1m        yaml.safe_load(parts[1])[0m
2026-09-11T10:08:23.9783384Z [36;1m    except yaml.YAMLError as e:[0m
2026-09-11T10:08:23.9783689Z [36;1m        print(f"{p}: invalid YAML: {e}")[0m
2026-09-11T10:08:23.9783977Z [36;1m        errs += 1[0m
2026-09-11T10:08:23.9784219Z [36;1mif checked == 0:[0m
2026-09-11T10:08:23.9784482Z [36;1m    print("No SKILL.md files found")[0m
2026-09-11T10:08:23.9784763Z [36;1m    sys.exit(1)[0m
2026-09-11T10:08:23.9784987Z [36;1mif errs:[0m
2026-09-11T10:08:23.9785217Z [36;1m    sys.exit(1)[0m
2026-09-11T10:08:23.9785523Z [36;1mprint(f"All {checked} SKILL.md file(s) parse cleanly")[0m
2026-09-11T10:08:23.9785863Z [36;1mPY[0m
2026-09-11T10:08:23.9806809Z shell: /usr/bin/bash -e {0}
2026-09-11T10:08:23.9807138Z ##[endgroup]
2026-09-11T10:08:24.0193958Z All 2 SKILL.md file(s) parse cleanly
